# 正则表达式提取信息
import re

if __name__ == "__main__":
    # findall：匹配字符串中所有的符合正则的内容
    res1 = re.findall('\d+', '我的电话号是100086，我女朋友的电话是10010')
    print(res1)

    # finditer：匹配字符串中所有的内容【返回的是迭代器】，从迭代器中拿到内容需要 .group()
    res2 = re.finditer('\d+', '我的电话号是100086，我女朋友的电话是10010')
    print(res2)
    for i in res2:
        print(i)
        print(i.group())

    # search：返回的结果是match对象，拿数据需要 .group()
    res3 = re.search('\d+', '我的电话号是15685748596')
    print(res3)
    print(res3.group())

    # match：从头开始匹配
    res3 = re.match('\d+', '我的电话号是15685748596')
    print(res3)

    # 预加载正则表达式
    obj = re.compile(r'\d+')
    res4 = obj.finditer('我的电话号码是10086，我女友的电话号码是10010')
    print(res4)
    for i in res4:
        print(i)
        print(i.group())

    res5 = obj.findall('我的的房间号码是：5074')
    print(res5)

    # (?P<分组名字>正则表达式) — — 可以当都从正则匹配的内容中进一步提取内容
    s = '''
        <div class='jay'><span id='1'>郭麒麟</span></div>
        <div class='jj'><span id='2'>宋铁</span></div>
        <div class='jolin'><span id='3'>大聪明</span></div>
        <div class='sylar'><span id='4'>范思哲</span></div>
        <div class='tory'><span id='5'>胡说八道</span></div>
    '''

    obj = re.compile(r"<div class='.*?'><span id='(?P<id>\d+)'>(?P<hahaha>.*?)</span></div>", re.S)
    result = obj.finditer(s)
    for res in result:
        print(res.group("id"))
        print(res.group("hahaha"))
